#ifndef __CC_GODDESS_H__
#define __CC_GODDESS_H__

#include <string>
#include <functional>
#include "base/ccMacros.h"

#include "myjsb/Gift.h"

namespace cocos2d { namespace myjsb {

    class CC_DLL Goddess 
    {
    public: 
        typedef std::function<void(const std::string& msg, const int val)> ResultCallback;

        static Goddess* getInstance();
        static void destroyInstance();
        inline const std::string& getNickName() const { return _nickname; };
        inline void setNickName(std::string& nickname) { _nickname = nickname; };
        inline const unsigned int getAge() const { return _age; };
        inline void setAge(unsigned int age) { _age = age; };

        std::string sayHi();
        void receiveGift(Gift& gift, const ResultCallback& callback);
    protected: 
        static Goddess* _instance;
        std::string _nickname = "goddess";
        unsigned int _age = 18;
    };

}}  // namespace cocos2d::myjsb

#endif    // __CC_GODDESS_H__
